package com.yn.service.zy;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.yn.common.model.zy.TCarFleetManageDO;
import com.yn.common.page.BasePage;
import com.yn.common.request.sc.CarFleetManageRequest;
import com.yn.common.request.sc.CarManageRequest;
import com.yn.common.request.sc.PageParamRequest;
import com.yn.common.response.driver.DriverFleetDetailResponse;

import com.yn.common.response.driver.FleetManageDetailResponse;
import com.yn.common.vo.CarFleetPageDrVO;
import com.yn.common.vo.MyRecord;
import com.yn.service.zy.model.dto.TCarFleetManageDTO;
import com.yn.service.zy.model.query.TCarFleetManageQuery;

import java.util.List;
import java.util.Map;

public interface TCarFleetManageService extends IService<TCarFleetManageDO> {
    /**
     * 分页获取车队信息
     * @param query
     * @param basePage
     * @return
     */
    IPage<TCarFleetManageDO> listPage(TCarFleetManageQuery query, PageParamRequest basePage);

    /**
     * 批量审核
     * @param cardFleetIds
     * @param auditStatus
     */
    void batchAudit(List<Integer> cardFleetIds, Integer auditStatus);

    /**
     * 保存车队信息
     * @param request
     */
    void saveFleet(CarFleetManageRequest request);

    /**
     * 批量检查图片url是否存在数据库-string
     * */
     boolean checkImageUrl(String fleetImageUrls);

     /**
      * 批量检查图片是否存在数据库-集合
     * */
    boolean checkImageUrl(List<String> fleetImageUrls);

    /**
     * 司机端分页获取车队列表
     * @param keyWords
     * @param carFleetName
     * @param pageParamRequest
     * @return
     */
    PageInfo<CarFleetPageDrVO> drListPage(String carFleetName, String keyWords, PageParamRequest pageParamRequest);

    /**
     * 获取车队详情
     * @param id
     * @return
     */
    TCarFleetManageDTO selectById(Integer id);

    /**
     * 司机端查看某个车队的详情——包括车队的司机，
     * */
    FleetManageDetailResponse getFleetDetailInfo(Integer id);

    /**
     * 为某个车队添加车辆信息
     *传过来的id时车队id
     * */
    void saveCar(CarManageRequest request, Integer id);

    /**
     * 根据id查询车队信息——用于编辑回显
     * */
    TCarFleetManageDO selectMyFleetInfoById(Integer id);

    /**
     * 分页获取车队列表
     * @param query
     * @param basePage
     * @return
     */
    BasePage<TCarFleetManageDTO> listPage1(TCarFleetManageQuery query, PageParamRequest basePage);

    /**
     * 根据发布人查询车队信息
     * @param appUserId
     * @return
     */
    List<TCarFleetManageDO> getInfoByAppUserId(Integer appUserId);
}

